#define _CRT_SECURE_NO_WARNINGS


#include <iostream>
#include <stdbool.h>


//using namespace std;
using std::cout;
using std::cin;
using std::endl;

class Date
{
public:

	Date(int year = 2024, int month = 8, int day = 4)
	{
		_year = year;
		_month = month;
		_day = day;
	}
	Date(const Date& d)
	{
		_year = d._year;
		_month = d._month;
		_day = d._day;
	}
	~Date()
	{
		_year = 0;
		_month = 0;
		_day = 0;
	}

	bool operator>(const Date& d)
	{
		if (_year > d._year)
		{
			return true;
		}
		else if (_year == d._year &&
			_month > d._year)
		{
			return true;
		}
		else if (_year == d._year &&
			_month == d._month &&
			_day > d._day)
		{
			return true;
		}
		return false;
	}

private:
	int _year;
	int _month;
	int _day;
};

class Stack
{
public:
	Stack(int capacity = 4)
	{
		//cout << "Stack(int capacity = 4)" << endl;

		_a = new int[capacity];
		_top = 0;
		_capacity = capacity;

	}

	void Push(int x)
	{
		_a[_top++] = x;
	}

	~Stack()
	{
		cout << "~Stack()" << endl;
		delete[_capacity] _a;
		_a = nullptr;
		_capacity = 0;
		_top = 0;
	}

private:
	int* _a;
	int _top;
	int _capacity;
};

class Myqueue
{
public:
	Myqueue()
	{
		//cout << "Myqueue()" << endl;
	}

	~Myqueue()
	{
		//cout << "~Myqueue()" << endl;
	}

private:
	Stack pushst;
	Stack popst;
};


int main()
{
	Date d1;
	Date d2(2024, 10, 1);
	//cout << d1 > d2 << endl;

	bool ret = d2 > d1;
	cout << ret << endl;
	return 0;
}

//int main()
//{
//
//	Myqueue mq;
//	//Date d1;
//	//Stack st;
//	//st.Push(1);
//	//st.Push(2);
//
//	return 0;
//}